@charset "UTF-8";
/* Settings
==================================================*/
/* depreciated */
/* Fonts
==================================================*/
h1,
.text-h1 {
  font-size: clamp(2.6rem, 1.5rem + 3vw, 4.3rem); /* 42–69px */
  font-weight: 700;
  line-height: 1.2;
}

h2,
.text-h2 {
  font-size: clamp(2rem, 1.2rem + 2.5vw, 3.4375rem); /* 32–55px */
  font-weight: 700;
  line-height: 1.2;
}

h3,
.text-h3 {
  font-size: clamp(1.6rem, 1rem + 2vw, 2.75rem); /* 26–44px (anchor) */
  font-weight: 700;
  line-height: 1.3;
}

h4,
.text-h4 {
  font-size: clamp(1.3rem, 0.9rem + 1.5vw, 2.2rem); /* 21–35px */
  font-weight: 500;
  line-height: 1.3;
}

h5,
.text-h5 {
  font-size: clamp(1.1rem, 0.8rem + 1vw, 1.75rem); /* 18–28px */
  font-weight: 500;
  line-height: 1.4;
}

h6,
.text-h6 {
  font-size: clamp(1rem, 0.85rem + 0.6vw, 1.4rem); /* 16–22px */
  font-weight: 400;
  line-height: 1.5;
}

p,
li {
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.125rem); /* 16–18px */
  font-weight: 400;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: none;
}

/* Colors
==================================================*/
/* ODI — TDWI On-Demand Intelligence
==================================================*/
body {
  background-color: #fff;
}

.breadcrumb {
  background-color: #fff;
  box-shadow: 0 0 0 100vmax #fff;
  clip-path: inset(0 -100vmax);
}
@media (max-width: 991px) {
  .breadcrumb {
    padding-inline: 1.5rem;
  }
}
@media (max-width: 600px) {
  .breadcrumb {
    padding-inline: 1.25rem;
  }
}

/* Navigation column pinning
==================================================*/
@media (max-width: 1319px) {
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item {
    grid-column: 3;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item {
    grid-column: 4;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item {
    grid-column: 5;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item {
    grid-column: 6;
  }
}
@media (min-width: 1320px) {
  .mainNavigationMenu ul.topnavlist {
    grid-template-columns: 1fr repeat(4, auto) 1fr;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item {
    grid-column: 2;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item {
    grid-column: 3;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item {
    grid-column: 4;
  }
  .mainNavigationMenu ul.topnavlist .nav-logo + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item + .top-level-nav-item {
    grid-column: 5;
  }
  .mainNavigationMenu ul.topnavlist .nav-cta-button {
    grid-column: 6;
  }
}
.mainNavigationMenu ul.topnavlist :is(.top-nav-link, .nav-menu-level-1).selected > a {
  color: #1b4692;
}

.mobileNavigationMenu__item.selected > .mobileNavigationMenu__header > .mobileNavigationMenu__label {
  color: #1b4692;
}

.pContent p.sub-head {
  margin-top: 1rem;
  margin-bottom: 3rem;
}

.pContent a:not(.btn) {
  color: #1b4692;
}

.pContent > div:not(.full-width) > h3[id*=h3Header] {
  margin-top: 0;
}

/* Local mixins
==================================================*/
@keyframes odi-bob {
  from, to {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-0.625rem);
  }
}
/* Hero (home)
==================================================*/
.odi-hero {
  max-width: none;
  min-height: calc(calc(min(50vw - 1.5rem, 1366px / 2 - 2rem) * 10 / 16 + 2.25rem) + 4rem);
  border-bottom: 1px solid rgba(18, 18, 18, 0.125);
  padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem);
  overflow: hidden;
  background-color: #fff;
  display: grid;
  position: relative;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-content: center;
}
.odi-hero > .summary {
  display: contents;
}
.odi-hero .lockup {
  order: -2;
}
.odi-hero .eyebrow {
  order: -1;
}
.odi-hero .actions {
  display: flex;
  margin-top: clamp(2rem, 4vw, 3rem);
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}
.odi-hero h3,
.odi-hero .eyebrow,
.odi-hero .lead,
.odi-hero .actions,
.odi-hero .footnote {
  width: 100%;
  max-width: 683px;
  justify-self: end;
  padding-right: clamp(2rem, 5vw, 4.5rem);
  padding-left: 2rem;
  grid-column: 1;
}
.odi-hero .eyebrow {
  display: block;
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #964069;
}
.odi-hero h3 {
  margin: 0;
  font-size: clamp(1.6rem, 1rem + 2vw, 2.75rem); /* 26-44px */
  font-weight: 900;
  line-height: 1.3;
  color: #121212;
}
.odi-hero .lead {
  margin: 2rem 0 0;
  color: #393e41;
}
.odi-hero .footnote {
  margin: 1.25rem 0 0;
  font-size: clamp(0.9rem, 0.85rem + 0.25vw, 1rem); /* 14-16px */
  font-weight: 600;
  color: #393e41;
}
.odi-hero .media {
  padding-block: 2rem;
  display: grid;
  position: absolute;
  inset: 0 max(1.5rem, (100% - 1366px) / 2 + 2rem) 0 50%;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  align-content: center;
  animation: odi-bob 7s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .odi-hero .media {
    animation: none;
  }
}
.odi-hero .media::before,
.odi-hero .media img {
  grid-area: 1/1;
}
.odi-hero .media::before {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  margin: calc((2.25rem - 0.75rem) / 2) 0 0 0.875rem;
  border-radius: 50%;
  background-color: #ff5f57;
  align-self: start;
  justify-self: start;
  box-shadow: 1.25rem 0 0 #febc2e, 2.5rem 0 0 #28c840;
  z-index: 1;
}
.odi-hero .media img {
  width: 100%;
  display: block;
  border-radius: 0.5rem;
  padding-top: 2.25rem;
  background-color: rgb(231.3, 231.3, 231.3);
  box-sizing: content-box;
  aspect-ratio: 16/10;
  object-fit: cover;
  object-position: top;
  box-shadow: 0 0 0 1px rgba(18, 18, 18, 0.125), 0 3px 6px rgba(18, 18, 18, 0.125), 0 1.5rem 3rem -0.75rem rgba(27, 70, 146, 0.2);
}
@media (max-width: 991px) {
  .odi-hero {
    min-height: 0;
    grid-template-columns: 1fr;
  }
  .odi-hero .actions {
    margin-top: 2rem;
  }
  .odi-hero .media {
    position: static;
    margin-top: 2.5rem;
    padding-inline: 1.5rem;
    grid-column: 1;
  }
  .odi-hero h3,
  .odi-hero .eyebrow,
  .odi-hero .lead,
  .odi-hero .actions,
  .odi-hero .footnote {
    max-width: 1366px;
    justify-self: stretch;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
  .odi-hero h3 {
    padding-top: clamp(1.5rem, 5vw, 3rem);
  }
  .odi-hero .lead {
    max-width: 760px;
    margin-top: 1.35rem;
  }
  .odi-hero .actions {
    gap: 0.9rem;
  }
}
@media (max-width: 600px) {
  .odi-hero h3,
  .odi-hero .eyebrow,
  .odi-hero .lead,
  .odi-hero .actions,
  .odi-hero .footnote {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
  .odi-hero .actions .btn {
    width: 100%;
    white-space: normal;
  }
}

/* Masthead (product pages)
==================================================*/
.odi-masthead {
  max-width: none;
  min-height: calc(calc(min(50vw - 1.5rem, 1366px / 2 - 2rem) * 10 / 16 + 2.25rem) + 4rem);
  border-bottom: 1px solid rgba(18, 18, 18, 0.125);
  padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem);
  overflow: hidden;
  background-color: #fff;
  display: grid;
  position: relative;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-content: center;
}
.odi-masthead > .summary {
  display: contents;
}
.odi-masthead .lockup {
  order: -2;
}
.odi-masthead .eyebrow {
  order: -1;
}
.odi-masthead .actions {
  display: flex;
  margin-top: clamp(2rem, 4vw, 3rem);
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}
.odi-masthead h3,
.odi-masthead .lockup,
.odi-masthead .eyebrow,
.odi-masthead .lead,
.odi-masthead .meta,
.odi-masthead .actions {
  width: 100%;
  max-width: 683px;
  justify-self: end;
  padding-right: clamp(2rem, 5vw, 4.5rem);
  padding-left: 2rem;
  grid-column: 1;
}
.odi-masthead .lockup {
  margin: 0 0 1.25rem;
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.125rem); /* 16-18px */
  font-weight: 700;
  line-height: 1.2;
  color: #1b4692;
}
.odi-masthead .eyebrow {
  display: block;
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #964069;
}
.odi-masthead .beta {
  display: inline-block;
  margin-left: 0.6rem;
  border-radius: 100vw;
  padding: 0.3rem 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #964069;
  background-color: rgba(150, 64, 105, 0.1);
  vertical-align: middle;
}
.odi-masthead h3 {
  margin: 0;
  font-size: clamp(1.6rem, 1rem + 2vw, 2.75rem); /* 26-44px */
  font-weight: 900;
  line-height: 1.3;
  color: #121212;
}
.odi-masthead .lead {
  margin: 1.75rem 0 0;
  color: #393e41;
}
.odi-masthead .meta {
  display: flex;
  margin: 2rem 0 0;
  list-style: none;
}
.odi-masthead .meta li {
  --odi-meta-gap: clamp(1rem, 2vw, 1.5rem);
  min-width: 0;
  margin: 0;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
  padding: 1.35rem var(--odi-meta-gap) 0 0;
  font-size: 0.6875rem; /* 11px */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #393e41;
  position: relative;
}
.odi-masthead .meta li:last-child {
  padding-right: 0;
}
.odi-masthead .meta li + li {
  padding-left: var(--odi-meta-gap);
}
.odi-masthead .meta li + li::before {
  content: "";
  width: 1px;
  position: absolute;
  top: 1.35rem;
  bottom: 0;
  left: 0;
  background-color: rgba(18, 18, 18, 0.125);
}
.odi-masthead .meta li strong {
  display: block;
  margin-bottom: 0.3rem;
  font-size: clamp(1.35rem, 1.05rem + 0.9vw, 1.75rem); /* 22-28px */
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
  text-transform: none;
  white-space: nowrap;
  color: #1b4692;
  font-variant-numeric: tabular-nums;
}
.odi-masthead .meta li strong em {
  font-size: 0.875rem;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0;
  color: #393e41;
}
.odi-masthead .media {
  padding-block: 2rem;
  display: grid;
  position: absolute;
  inset: 0 max(1.5rem, (100% - 1366px) / 2 + 2rem) 0 50%;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  align-content: center;
  animation: odi-bob 7s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .odi-masthead .media {
    animation: none;
  }
}
.odi-masthead .media::before,
.odi-masthead .media img {
  grid-area: 1/1;
}
.odi-masthead .media::before {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  margin: calc((2.25rem - 0.75rem) / 2) 0 0 0.875rem;
  border-radius: 50%;
  background-color: #ff5f57;
  align-self: start;
  justify-self: start;
  box-shadow: 1.25rem 0 0 #febc2e, 2.5rem 0 0 #28c840;
  z-index: 1;
}
.odi-masthead .media img {
  width: 100%;
  display: block;
  border-radius: 0.5rem;
  padding-top: 2.25rem;
  background-color: rgb(231.3, 231.3, 231.3);
  box-sizing: content-box;
  aspect-ratio: 16/10;
  object-fit: cover;
  object-position: top;
  box-shadow: 0 0 0 1px rgba(18, 18, 18, 0.125), 0 3px 6px rgba(18, 18, 18, 0.125), 0 1.5rem 3rem -0.75rem rgba(27, 70, 146, 0.2);
}
@media (max-width: 991px) {
  .odi-masthead {
    min-height: 0;
    grid-template-columns: 1fr;
  }
  .odi-masthead .actions {
    margin-top: 2rem;
  }
  .odi-masthead .media {
    position: static;
    margin-top: 2.5rem;
    padding-inline: 1.5rem;
    grid-column: 1;
  }
  .odi-masthead h3,
  .odi-masthead .lockup,
  .odi-masthead .eyebrow,
  .odi-masthead .lead,
  .odi-masthead .meta,
  .odi-masthead .actions {
    max-width: 1366px;
    justify-self: stretch;
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
  .odi-masthead h3 {
    padding-top: clamp(1.5rem, 5vw, 3rem);
  }
  .odi-masthead .lead {
    max-width: 760px;
    margin-top: 1.35rem;
  }
  .odi-masthead .actions {
    gap: 0.9rem;
  }
}
@media (max-width: 600px) {
  .odi-masthead h3,
  .odi-masthead .lockup,
  .odi-masthead .eyebrow,
  .odi-masthead .lead,
  .odi-masthead .meta,
  .odi-masthead .actions {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
  }
  .odi-masthead .meta {
    flex-wrap: wrap;
    gap: 1rem 0;
  }
  .odi-masthead .meta li + li {
    padding-left: 0;
  }
  .odi-masthead .meta li + li::before {
    content: none;
  }
  .odi-masthead .actions .btn {
    width: 100%;
    white-space: normal;
  }
}

/* Trusted By (logo band)
==================================================*/
.odi-logos {
  padding-block: clamp(2.5rem, 5vw, 4rem);
  overflow: hidden;
  background: linear-gradient(to right, #1b4692, #964069);
}
.odi-logos h3[id*=h3Header],
.odi-logos h3[id*=h3Intro],
.odi-logos p.sub-head {
  text-align: center;
}
.odi-logos > h3[id*=h3Header] {
  margin: 0;
  padding-inline: 2rem;
  color: #fff;
  text-wrap: wrap;
}
@supports (text-wrap: balance) {
  .odi-logos > h3[id*=h3Header] {
    text-wrap: balance;
  }
}
.odi-logos .summary > p.sub-head {
  max-width: 64ch;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
  padding-inline: 2rem;
  color: #fff;
}
.odi-logos .track {
  width: max-content;
  display: flex;
  margin-top: clamp(1.75rem, 4vw, 2.75rem);
  animation: odi-logos-scroll 32s linear infinite;
}
.odi-logos .set {
  display: flex;
  padding: 0 2rem;
  flex: 0 0 auto;
  gap: 4rem;
  align-items: center;
  justify-content: space-around;
}
.odi-logos .logo {
  width: 10rem;
  height: 4rem;
  display: inline-flex;
  flex: 0 0 10rem;
  align-items: center;
  justify-content: center;
}
.odi-logos .logo img {
  width: 8rem;
  max-height: 3rem;
  display: block;
  filter: brightness(0) invert(1);
  opacity: 0.82;
}
@media (prefers-reduced-motion: reduce) {
  .odi-logos .track {
    width: auto;
    animation: none;
  }
  .odi-logos .set {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@keyframes odi-logos-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-33.333333%);
  }
}
/* CTA band
==================================================*/
.odi-cta {
  display: grid;
  padding: clamp(2.5rem, 5vw, 4rem) max(2rem, (100% - 1366px) / 2 + 2rem);
  background: linear-gradient(to right, #1b4692, #964069);
  grid-template-columns: minmax(0, 1fr) max-content;
  grid-template-areas: "title cta" "sub cta";
  column-gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}
.odi-cta > .summary {
  display: contents;
}
.odi-cta h3 {
  margin: 0;
  font-size: clamp(1.6rem, 1rem + 2vw, 2.75rem); /* 26-44px */
  color: #fff;
  grid-area: title;
  align-self: end;
}
.odi-cta p {
  margin: 0.5rem 0 0;
  font-size: clamp(1rem, 0.85rem + 0.6vw, 1.4rem); /* 16-22px */
  color: #fff;
  grid-area: sub;
  align-self: start;
}
.odi-cta .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  grid-area: cta;
  align-self: center;
}
.odi-cta--stacked {
  grid-template-columns: minmax(0, 1fr) minmax(15rem, max-content);
}
.odi-cta--stacked h3 {
  max-width: 30ch;
  text-wrap: wrap;
}
@supports (text-wrap: balance) {
  .odi-cta--stacked h3 {
    text-wrap: balance;
  }
}
.odi-cta--stacked p {
  max-width: 52ch;
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-cta--stacked p {
    text-wrap: pretty;
  }
}
.odi-cta--stacked .actions {
  display: grid;
  grid-template-columns: minmax(15rem, max-content);
  gap: 0.75rem;
}
.odi-cta--stacked .actions .btn {
  width: 100%;
  justify-content: center;
}
@media (max-width: 767px) {
  .odi-cta--stacked .actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
.odi-cta--stacked:not(:has(p)) h3 {
  align-self: center;
}
@media (max-width: 767px) {
  .odi-cta--stacked .actions .btn {
    white-space: normal;
  }
}
@media (max-width: 991px) {
  .odi-cta, .odi-cta--stacked {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "sub" "cta";
  }
  .odi-cta .actions {
    margin-top: 1.75rem;
  }
}

/* Stat band (home)
==================================================*/
.odi-stats {
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-stats {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-stats .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-stats__list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3.5rem);
}
.odi-stats__item {
  padding: 0;
}
.odi-stats__item + li {
  margin-top: 0;
}
.odi-stats__value {
  margin: 0;
  font-size: clamp(2.2rem, 1.85rem + 1.7vw, 3.25rem); /* 35-52px */
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #1b4692;
  font-variant-numeric: tabular-nums;
}
.odi-stats__label {
  max-width: 26ch;
  margin: 0.75rem 0 0;
  font-size: clamp(0.95rem, 0.91rem + 0.18vw, 1.05rem); /* 15-17px */
  line-height: 1.45;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-stats__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.75rem, 4vw, 2.5rem);
  }
}
@media (max-width: 767px) {
  .odi-stats__list {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .odi-stats__label {
    max-width: none;
  }
}

/* Spine (home)
==================================================*/
.odi-spine {
  --odi-stage-badge: 3rem;
  --odi-stage-gap: clamp(1.25rem, 3vw, 2.5rem);
  --odi-stage-pad: clamp(1.25rem, 2.5vw, 2rem);
  --odi-stage-space: 0.75rem;
  --odi-stage-card: rgb(241.32, 243.9, 248.46);
}
.odi-spine__intro h3[id*=h3Header] {
  margin: 0;
  color: #121212;
}
.odi-spine__intro p.sub-head {
  max-width: 90ch;
  margin-bottom: 1.25rem;
}
.odi-spine__rail-title {
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
  font-size: clamp(1.1rem, 0.8rem + 1vw, 1.75rem); /* 18-28px */
  font-weight: 900;
  line-height: 1.3;
  color: #1b4692;
}
@media (max-width: 767px) {
  .odi-spine {
    --odi-stage-badge: 2.5rem;
    --odi-stage-gap: 1rem;
  }
}

/* Spine stages
==================================================*/
.odi-stage {
  --odi-stage-tone: #1b4692;
  display: grid;
  padding: var(--odi-stage-pad);
  position: relative;
  grid-template-columns: var(--odi-stage-badge) minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto auto 1fr;
  column-gap: var(--odi-stage-gap);
}
.odi-stage > .summary {
  display: contents;
}
.odi-stage::before {
  width: var(--odi-stage-badge);
  height: var(--odi-stage-badge);
  display: flex;
  border-radius: 50%;
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1;
  color: #fff;
  background-color: var(--odi-stage-tone);
  position: relative;
  grid-row: 1/span 3;
  grid-column: 1;
  align-items: center;
  justify-content: center;
  align-self: start;
  box-shadow: 0 0 0 0.375rem var(--odi-stage-card);
  z-index: 1;
}
.odi-stage::after {
  content: "";
  width: 1px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--odi-stage-pad) + var(--odi-stage-badge) / 2);
  background-color: rgba(18, 18, 18, 0.125);
}
.odi-stage + .odi-stage {
  margin-top: var(--odi-stage-space);
}
.odi-stage + .odi-stage::after {
  top: calc(-1 * var(--odi-stage-space));
}
.odi-stage--1, .odi-stage--2, .odi-stage--3 {
  border-radius: 0.5rem;
  background-color: var(--odi-stage-card);
}
.odi-stage--1::before {
  content: "1";
}
.odi-stage--1::after {
  top: calc(var(--odi-stage-pad) + var(--odi-stage-badge) / 2);
}
.odi-stage--2 {
  --odi-stage-tone: #964069;
  --odi-stage-card: rgb(248.7, 243.54, 246);
}
.odi-stage--2::before {
  content: "2";
}
.odi-stage--3 {
  --odi-stage-tone: #393e41;
  --odi-stage-card: rgb(243.12, 243.42, 243.6);
}
.odi-stage--3::before {
  content: "3";
}
.odi-stage--4 {
  grid-template-columns: var(--odi-stage-badge) minmax(0, 1fr);
}
.odi-stage--4::before {
  content: "\f021";
  border: 1px solid #1b4692;
  font-family: "Font Awesome 6 Free";
  font-size: 1.1rem;
  color: #1b4692;
  background-color: #fff;
  box-shadow: none;
}
.odi-stage--4::after {
  bottom: calc(100% - var(--odi-stage-pad) + 0.5rem);
}
.odi-stage--4 .odi-stage__note {
  max-width: 68ch;
}
.odi-stage__verb {
  margin: 0;
  font-size: 0.8125rem; /* 13px — a tracked-out label should not scale with the copy */
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--odi-stage-tone);
  grid-row: 1;
  grid-column: 2;
}
.odi-stage h3[id*=h3Header] {
  margin: 0.4rem 0 0;
  font-size: clamp(1.1rem, 0.8rem + 0.9vw, 1.6rem); /* 18-26px */
  font-weight: 700;
  color: #121212;
  grid-row: 2;
  grid-column: 2;
}
.odi-stage h3[id*=h3Header] .beta {
  display: inline-block;
  margin-left: 0.6rem;
  border-radius: 100vw;
  padding: 0.3rem 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #964069;
  background-color: rgba(150, 64, 105, 0.1);
  vertical-align: middle;
}
.odi-stage__note {
  max-width: 46ch;
  margin: 0.75rem 0 0;
  font-size: clamp(0.95rem, 0.91rem + 0.18vw, 1.05rem); /* 15-17px */
  line-height: 1.55;
  color: #393e41;
  grid-row: 3;
  grid-column: 2;
}
.odi-stage__list {
  grid-row: 1/-1;
  grid-column: 3;
  margin-block: 1.25rem;
  margin-inline: 0;
  padding-inline-start: 0;
  list-style: none;
}
.odi-stage__list :where(li) {
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-stage__list :where(li) {
    text-wrap: pretty;
  }
}
.odi-stage__list :where(li) {
  padding-inline-start: 2em;
  position: relative;
}
.odi-stage__list :where(li)::before {
  content: "";
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50%;
  background-color: var(--odi-stage-tone);
  position: absolute;
  top: calc((1lh - 8px) / 2);
  left: 0;
}
.odi-stage__list :where(li) + li {
  margin-top: 0.75rem;
}
.odi-stage .actions {
  margin-top: 1.25rem;
  grid-row: 4;
  grid-column: 2;
  align-self: start;
}
@media (max-width: 991px) {
  .odi-stage {
    grid-template-columns: var(--odi-stage-badge) minmax(0, 1fr);
    grid-template-rows: none;
  }
  .odi-stage::before {
    grid-row: 1;
  }
  .odi-stage__verb, .odi-stage__note, .odi-stage__list {
    grid-row: auto;
    grid-column: 2;
  }
  .odi-stage__note {
    max-width: 62ch;
  }
  .odi-stage h3[id*=h3Header] {
    grid-row: auto;
    grid-column: 2;
  }
  .odi-stage .actions {
    margin-top: 0.5rem;
    grid-row: auto;
    grid-column: 2;
  }
}
@media (max-width: 767px) {
  .odi-stage {
    padding: var(--odi-stage-pad) 1.25rem;
  }
  .odi-stage::before {
    font-size: 0.95rem;
  }
  .odi-stage::after {
    left: calc(1.25rem + var(--odi-stage-badge) / 2);
  }
  .odi-stage .actions .btn {
    white-space: normal;
  }
}

/* Audience (for you / for your organization)
==================================================*/
.odi-audience {
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-audience {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-audience > h3[id*=h3Header],
.odi-audience > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-audience .summary > p.sub-head {
  max-width: 64ch;
}
.odi-audience .two-column {
  column-gap: 0;
}
.odi-audience__col {
  padding-right: clamp(1rem, 2vw, 1.75rem);
}
.odi-audience__col h4 {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + 0.5vw, 1.45rem); /* 18-23px */
  font-weight: 800;
  line-height: 1.25;
  color: #121212;
}
.odi-audience__col + .odi-audience__col {
  border-left: 1px solid rgba(18, 18, 18, 0.125);
  padding-right: 0;
  padding-left: clamp(2rem, 3.5vw, 3rem);
}
.odi-audience__list {
  color: #393e41;
  margin-block: 1.25rem;
  margin-inline: 0;
  padding-inline-start: 0;
  list-style: none;
}
.odi-audience__list :where(li) {
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-audience__list :where(li) {
    text-wrap: pretty;
  }
}
.odi-audience__list :where(li) {
  padding-inline-start: 2em;
  position: relative;
}
.odi-audience__list :where(li)::before {
  content: "";
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50%;
  background-color: #1b4692;
  position: absolute;
  top: calc((1lh - 8px) / 2);
  left: 0;
}
.odi-audience__list :where(li) + li {
  margin-top: 1.15rem;
}
.odi-audience__list strong {
  display: block;
  margin-bottom: 0.15rem;
  font-weight: 700;
  color: #121212;
}
@media (max-width: 991px) {
  .odi-audience__col {
    padding-right: 0;
  }
  .odi-audience__col + .odi-audience__col {
    border-top: 1px solid rgba(18, 18, 18, 0.125);
    border-left: 0;
    padding-top: 1.75rem;
    padding-left: 0;
  }
}

/* Why TDWI
==================================================*/
.odi-why {
  max-width: none;
  background-color: rgba(27, 70, 146, 0.05);
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-why {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-why > h3[id*=h3Header],
.odi-why > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-why {
  display: grid;
  padding-inline: max(clamp(3rem, 5vw + 2rem, 80px) / 2, (100% - 1366px) / 2);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr);
  column-gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
  grid-template-rows: auto minmax(0, 1fr);
}
.odi-why > .summary {
  display: contents;
}
.odi-why > h3[id*=h3Header] {
  margin: 0;
  color: #121212;
  grid-row: 1;
  grid-column: 1;
}
.odi-why .summary > p.sub-head {
  max-width: 52ch;
  grid-row: 2;
  grid-column: 1;
}
.odi-why .odi-why__run, .odi-why .odi-why__list {
  grid-row: 1/-1;
  grid-column: 2;
}
@media (max-width: 991px) {
  .odi-why {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }
  .odi-why > h3[id*=h3Header],
  .odi-why .summary > p.sub-head,
  .odi-why .odi-why__run, .odi-why .odi-why__list {
    grid-row: auto;
    grid-column: 1;
  }
  .odi-why .summary > p.sub-head {
    max-width: 68ch;
  }
}
@media (max-width: 767px) {
  .odi-why {
    padding-inline: calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-why--neutral {
  background-color: #f0f0f0;
}
.odi-why__lead {
  margin: 0 0 1.25rem;
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-why__list {
  display: grid;
  margin: 0;
  padding: 1.35rem 0 0;
  list-style: none;
  background-image: linear-gradient(to right, #1b4692, #964069);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% 3px;
  counter-reset: odi-why-index;
}
.odi-why__item {
  display: grid;
  padding: clamp(1.15rem, 2vw, 1.6rem) 0;
  grid-template-columns: minmax(2.25rem, auto) minmax(0, 1fr);
  column-gap: clamp(1rem, 2vw, 1.5rem);
  counter-increment: odi-why-index;
  align-items: start;
}
.odi-why__item + li {
  margin-top: 0;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-why__item::before {
  content: counter(odi-why-index, decimal-leading-zero);
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: #1b4692;
  font-variant-numeric: tabular-nums;
}
.odi-why__copy {
  max-width: 64ch;
}
.odi-why__copy h4 {
  margin: 0;
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-why__copy p {
  margin: 0.4rem 0 0;
  color: #393e41;
}
@media (max-width: 767px) {
  .odi-why__item {
    grid-template-columns: minmax(1.85rem, auto) minmax(0, 1fr);
    column-gap: 0.85rem;
  }
  .odi-why__copy {
    max-width: none;
  }
}

/* Enable (what you enable / what it enables)
==================================================*/
.odi-enable {
  max-width: none;
  background-color: rgba(27, 70, 146, 0.05);
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-enable {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-enable > h3[id*=h3Header],
.odi-enable > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-enable .summary > p.sub-head {
  max-width: 64ch;
}
.odi-enable__grid {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}
@media (max-width: 767px) {
  .odi-enable__grid {
    grid-template-columns: 1fr;
  }
}
.odi-enable .summary > .odi-enable__grid:first-child {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.odi-enable--split {
  display: grid;
  padding-inline: max(clamp(3rem, 5vw + 2rem, 80px) / 2, (100% - 1366px) / 2);
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr);
  column-gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
  grid-template-rows: auto minmax(0, 1fr);
}
.odi-enable--split > .summary {
  display: contents;
}
.odi-enable--split > h3[id*=h3Header] {
  margin: 0;
  color: #121212;
  grid-row: 1;
  grid-column: 1;
}
.odi-enable--split .summary > p.sub-head {
  max-width: 52ch;
  grid-row: 2;
  grid-column: 1;
}
.odi-enable--split .odi-enable__run {
  grid-row: 1/-1;
  grid-column: 2;
}
@media (max-width: 991px) {
  .odi-enable--split {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }
  .odi-enable--split > h3[id*=h3Header],
  .odi-enable--split .summary > p.sub-head,
  .odi-enable--split .odi-enable__run {
    grid-row: auto;
    grid-column: 1;
  }
  .odi-enable--split .summary > p.sub-head {
    max-width: 68ch;
  }
}
@media (max-width: 767px) {
  .odi-enable--split {
    padding-inline: calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-enable--split .odi-enable__grid {
  grid-template-columns: minmax(0, 1fr);
}
.odi-enable__lead {
  margin: 0 0 clamp(1rem, 2vw, 1.5rem);
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-enable__item {
  display: grid;
  padding: 0;
}
.odi-enable__item + li {
  margin-top: 0;
}
.odi-enable__card {
  display: grid;
  margin: 0;
  padding: clamp(1.35rem, 2.5vw, 1.85rem);
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: clamp(0.95rem, 2vw, 1.25rem);
  align-items: start;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
}
.odi-enable__shot {
  width: 100%;
  display: block;
  margin-bottom: 1.25rem;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.25rem;
  aspect-ratio: 16/10;
  object-fit: cover;
  object-position: top;
  grid-column: 1/-1;
}
.odi-enable__card > i {
  width: 3rem;
  height: 3rem;
  display: flex;
  border-radius: 0.5rem;
  font-size: 1.15rem;
  line-height: 1;
  color: #fff;
  background: linear-gradient(135deg, #1b4692, #964069);
  align-items: center;
  justify-content: center;
}
.odi-enable__copy h4 {
  margin: 0;
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-enable__copy p {
  margin: 0.4rem 0 0;
  color: #393e41;
}
@media (max-width: 767px) {
  .odi-enable__card > i {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1rem;
  }
}

/* Plans
==================================================*/
.odi-plans__card,
.odi-alacarte__card {
  display: flex;
  margin: 0;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  background-color: #fff;
  position: relative;
  box-shadow: 0 2px 4px rgba(18, 18, 18, 0.08);
  flex-direction: column;
}
.odi-plans__card > .btn,
.odi-alacarte__card > .btn {
  margin-top: auto;
  align-self: flex-start;
}

.odi-plans__name,
.odi-alacarte__name {
  margin: 0;
  font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #121212;
}

.odi-plans__price,
.odi-alacarte__price {
  display: flex;
  margin: 0.5rem 0 0;
  font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.5rem); /* 30-40px */
  font-weight: 900;
  line-height: 1.1;
  color: #1b4692;
  flex-direction: column;
}
.odi-plans__price em,
.odi-alacarte__price em {
  margin-top: 0.4rem;
  font-size: 0.9rem;
  font-weight: 600;
  font-style: normal;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: #393e41;
}

.odi-plans__desc,
.odi-alacarte__desc {
  margin: 1.1rem 0 1.75rem;
  color: #393e41;
}

.odi-plans h3[id*=h3Header],
.odi-plans h3[id*=h3Intro],
.odi-plans p.sub-head {
  text-align: center;
}
.odi-plans.full-width {
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-plans.full-width {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-plans.full-width > h3[id*=h3Header],
.odi-plans.full-width > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-plans__grid {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
}
.odi-plans__card--featured {
  border-color: #1b4692;
  background-color: #1b4692;
  box-shadow: 0 3px 6px rgba(18, 18, 18, 0.125);
}
.odi-plans__card--featured .odi-plans__name,
.odi-plans__card--featured .odi-plans__price {
  color: #fff;
}
.odi-plans__card--featured .odi-plans__price em,
.odi-plans__card--featured .odi-plans__desc {
  color: rgba(255, 255, 255, 0.85);
}
.odi-plans__tag {
  margin: 0;
  border-radius: 100vw;
  padding: 0.3rem 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #1b4692;
  background-color: #fff;
  position: absolute;
  top: clamp(1.5rem, 2.5vw, 2rem);
  right: clamp(1.5rem, 2.5vw, 2rem);
}
@media (max-width: 991px) {
  .odi-plans__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .odi-plans__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
}

/* À la carte
==================================================*/
.odi-alacarte h3[id*=h3Header],
.odi-alacarte h3[id*=h3Intro],
.odi-alacarte p.sub-head {
  text-align: center;
}
.odi-alacarte.full-width {
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-alacarte.full-width {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-alacarte.full-width > h3[id*=h3Header],
.odi-alacarte.full-width > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-alacarte__grid {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.odi-alacarte__name .beta {
  display: inline-block;
  margin-left: 0.6rem;
  border-radius: 100vw;
  padding: 0.3rem 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #964069;
  background-color: rgba(150, 64, 105, 0.1);
  vertical-align: middle;
}
.odi-alacarte__note {
  max-width: 74ch;
  margin: 2rem auto 0;
  text-align: center;
  color: #393e41;
}
.odi-alacarte--inset {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}
.odi-alacarte--inset .odi-alacarte__heading {
  display: grid;
  margin: 0 0 clamp(1.5rem, 3vw, 2rem);
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  color: #121212;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  column-gap: clamp(1rem, 2.5vw, 2rem);
  align-items: center;
}
.odi-alacarte--inset .odi-alacarte__heading::before, .odi-alacarte--inset .odi-alacarte__heading::after {
  content: "";
  height: 1px;
  background-color: rgba(18, 18, 18, 0.125);
}
.odi-alacarte--inset .odi-alacarte__card {
  display: grid;
  padding: clamp(1.25rem, 2vw, 1.75rem);
  background-color: #f0f0f0;
  box-shadow: none;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "name action" "price action" "desc action";
  column-gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: center;
}
.odi-alacarte--inset .odi-alacarte__name {
  font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem); /* 16-18px */
  grid-area: name;
}
.odi-alacarte--inset .odi-alacarte__price {
  margin-top: 0.35rem;
  font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.75rem); /* 22-28px */
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: 0.5rem;
  align-items: baseline;
  grid-area: price;
}
.odi-alacarte--inset .odi-alacarte__price em {
  margin-top: 0;
}
.odi-alacarte--inset .odi-alacarte__desc {
  margin: 0.6rem 0 0;
  grid-area: desc;
}
.odi-alacarte--inset .odi-alacarte__card > .btn {
  margin-top: 0;
  align-self: center;
  grid-area: action;
}
@media (max-width: 991px) {
  .odi-alacarte--inset .odi-alacarte__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 767px) {
  .odi-alacarte--inset .odi-alacarte__card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "name" "price" "desc" "action";
  }
  .odi-alacarte--inset .odi-alacarte__card > .btn {
    margin-top: 1.25rem;
    justify-self: start;
  }
}
@media (max-width: 767px) {
  .odi-alacarte__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
}

/* Add-ons
==================================================*/
.odi-addons h3[id*=h3Header],
.odi-addons h3[id*=h3Intro],
.odi-addons p.sub-head {
  text-align: center;
}
.odi-addons__grid {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.odi-addons__card {
  margin: 0;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  background-color: #fff;
  box-shadow: 0 2px 4px rgba(18, 18, 18, 0.08);
}
.odi-addons__card h4 {
  margin: 0;
  font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  color: #121212;
}
.odi-addons__card p {
  margin: 0.75rem 0 0;
  color: #393e41;
}
.odi-addons__card .odi-addons__offer {
  margin-top: 1.35rem;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
  padding-top: 1.35rem;
  font-size: 1rem;
  font-weight: 700;
  color: #1b4692;
}
.odi-addons .actions {
  display: flex;
  margin-top: clamp(2rem, 4vw, 3rem);
  justify-content: center;
}
@media (max-width: 767px) {
  .odi-addons__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
}

/* Two Ways to Buy
==================================================*/
.odi-buy h3[id*=h3Header],
.odi-buy h3[id*=h3Intro],
.odi-buy p.sub-head {
  text-align: center;
}
.odi-buy--neutral {
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-buy--neutral {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-buy--neutral > h3[id*=h3Header],
.odi-buy--neutral > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-buy--neutral .odi-buy__panel:not(.odi-buy__panel--brand) {
  background: #fff;
}
.odi-buy--tint {
  max-width: none;
  background-color: rgba(27, 70, 146, 0.05);
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-buy--tint {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-buy--tint > h3[id*=h3Header],
.odi-buy--tint > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-buy:not(.full-width) {
  padding-top: clamp(3rem, 5vw + 2rem, 80px);
}
.odi-buy > h3[id*=h3Header] {
  margin-block: 0;
}
.odi-buy .summary > p.sub-head {
  max-width: 64ch;
  margin-right: auto;
  margin-left: auto;
}
.odi-buy__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.odi-buy__panel {
  display: flex;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  flex-direction: column;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
}
.odi-buy__panel .btn {
  margin-top: auto;
  align-self: flex-start;
}
.odi-buy__label {
  margin: 0 0 1rem;
  font-size: 0.9375rem; /* 15px */
  font-weight: 700;
  line-height: 1.3;
  color: #393e41;
}
.odi-buy__name {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); /* 18-22px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-buy__name .beta {
  display: inline-block;
  margin-left: 0.6rem;
  border-radius: 100vw;
  padding: 0.3rem 0.7rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #964069;
  background-color: rgba(150, 64, 105, 0.1);
  vertical-align: middle;
}
.odi-buy__lockup {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); /* 18-22px */
  font-weight: 800;
  line-height: 1.3;
}
.odi-buy__pills {
  margin: 0.65rem 0 0;
  font-size: 0.9375rem; /* 15px */
  line-height: 1.5;
}
.odi-buy__price {
  margin: 1.25rem 0 0;
  font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); /* 32-44px */
  font-weight: 900;
  line-height: 1.1;
  color: #1b4692;
  font-variant-numeric: tabular-nums;
}
.odi-buy__price em {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.9375rem; /* 15px */
  font-weight: 600;
  font-style: normal;
  line-height: 1.3;
  color: #393e41;
}
.odi-buy__desc {
  margin: 0.9rem 0 clamp(1.5rem, 2.5vw, 2rem);
  color: #393e41;
}
.odi-buy__pip {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  margin: 0;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 100vw;
  font-size: 0.875rem; /* 14px */
  font-weight: 700;
  line-height: 1;
  color: #393e41;
  background-color: #fff;
  place-items: center;
  align-self: center;
}
.odi-buy__panel--brand {
  border: 1px solid #1b4692;
  color: #fff;
  background: #1b4692;
}
.odi-buy__panel--brand .odi-buy__label,
.odi-buy__panel--brand .odi-buy__pills {
  color: rgba(255, 255, 255, 0.82);
}
.odi-buy__panel--brand .odi-buy__price {
  color: #fff;
}
.odi-buy__panel--brand .odi-buy__price em {
  color: rgba(255, 255, 255, 0.82);
}
.odi-buy__panel--brand .odi-buy__desc {
  color: rgba(255, 255, 255, 0.88);
}
.odi-buy__note {
  max-width: 74ch;
  margin: clamp(1.75rem, 3vw, 2.5rem) auto 0;
  text-align: center;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-buy__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .odi-buy__pip {
    width: auto;
    height: auto;
    display: flex;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    align-items: center;
    gap: 1rem;
  }
  .odi-buy__pip::before, .odi-buy__pip::after {
    content: "";
    height: 1px;
    background-color: rgba(18, 18, 18, 0.125);
    flex: 1;
  }
}
@media (max-width: 767px) {
  .odi-buy__panel .btn {
    align-self: stretch;
  }
}

/* Teams & Organizations
==================================================*/
.odi-teams {
  max-width: none;
  background-color: #fff;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-teams {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-teams > h3[id*=h3Header],
.odi-teams > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-teams {
  display: grid;
  padding-inline: max(clamp(3rem, 5vw + 2rem, 80px) / 2, (100% - 1366px) / 2);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
  grid-template-rows: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
}
.odi-teams > .summary {
  display: contents;
}
.odi-teams > h3[id*=h3Header] {
  margin: 0;
  color: #121212;
  grid-row: 2;
  grid-column: 1;
}
.odi-teams .summary > p.sub-head {
  max-width: 52ch;
  grid-row: 3;
  grid-column: 1;
}
.odi-teams .summary > .actions {
  grid-row: 4;
  grid-column: 1;
}
.odi-teams .odi-teams__panel {
  grid-row: 1/-1;
  grid-column: 2;
}
@media (max-width: 991px) {
  .odi-teams {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }
  .odi-teams > h3[id*=h3Header],
  .odi-teams .summary > p.sub-head,
  .odi-teams .odi-teams__panel {
    grid-row: auto;
    grid-column: 1;
  }
  .odi-teams .summary > .actions {
    margin-bottom: clamp(2rem, 6vw, 2.5rem);
    grid-row: auto;
    grid-column: 1;
  }
  .odi-teams .summary > p.sub-head {
    max-width: 68ch;
  }
}
@media (max-width: 767px) {
  .odi-teams {
    padding-inline: calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-teams .summary > p.sub-head {
  margin-bottom: 1.75rem;
}
.odi-teams .summary > .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.odi-teams__panel {
  padding: clamp(1.75rem, 3vw, 2.5rem);
  color: #121212;
  align-self: center;
  box-shadow: 0 2px 4px rgba(18, 18, 18, 0.08);
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
}
.odi-teams__label {
  margin: 0;
  font-size: 0.9375rem; /* 15px */
  font-weight: 700;
  line-height: 1.3;
  color: #393e41;
}
.odi-teams__figure {
  margin: 0.75rem 0 0;
  font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem); /* 36-52px */
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  color: #1b4692;
}
.odi-teams__figure em {
  max-width: 34ch;
  display: block;
  margin-top: 0.65rem;
  font-size: 0.9375rem; /* 15px */
  font-weight: 600;
  font-style: normal;
  line-height: 1.45;
  color: #393e41;
}
.odi-teams__points {
  margin: clamp(1.5rem, 3vw, 2rem) 0 0;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
  padding: 0;
  list-style: none;
}
.odi-teams__point {
  margin: 0;
  padding: clamp(0.9rem, 1.8vw, 1.15rem) 0;
}
.odi-teams__point:last-child {
  padding-bottom: 0;
}
.odi-teams__point + li {
  margin-top: 0;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-teams__point h4 {
  margin: 0;
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.15rem); /* 17-18px */
  font-weight: 800;
  line-height: 1.35;
  color: #121212;
}
.odi-teams__point p {
  margin: 0.3rem 0 0;
  font-size: 0.9375rem; /* 15px */
  line-height: 1.5;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-teams__panel {
    margin-top: clamp(2rem, 5vw, 2.5rem);
  }
}

/* For Learning & Development
==================================================*/
.odi-ld {
  max-width: none;
  background-color: rgba(27, 70, 146, 0.05);
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-ld {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-ld > h3[id*=h3Header],
.odi-ld > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-ld h3[id*=h3Header],
.odi-ld h3[id*=h3Intro],
.odi-ld p.sub-head {
  text-align: center;
}
.odi-ld .summary > p.sub-head {
  max-width: 60ch;
  margin-right: auto;
  margin-left: auto;
}
.odi-ld {
  --odi-ld-badge: 2.5rem;
  --odi-ld-gap: clamp(1.25rem, 2.5vw, 2.25rem);
}
.odi-ld__track {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: var(--odi-ld-gap);
  row-gap: clamp(2rem, 4vw, 2.75rem);
}
.odi-ld__step {
  margin: 0;
  padding: 0;
  position: relative;
}
.odi-ld__step::before {
  content: "";
  height: 1px;
  position: absolute;
  top: calc(var(--odi-ld-badge) / 2);
  right: calc(-1 * var(--odi-ld-gap));
  left: 0;
  background-color: rgba(18, 18, 18, 0.125);
}
.odi-ld__step:last-child::before {
  display: none;
}
.odi-ld__phase {
  display: flex;
  margin: 0;
  position: relative;
  gap: 0.75rem;
  align-items: center;
}
.odi-ld__index {
  width: var(--odi-ld-badge);
  height: var(--odi-ld-badge);
  display: flex;
  border-radius: 50%;
  font-size: 0.9375rem; /* 15px */
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: #fff;
  background-color: #1b4692;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 0.375rem rgb(243.6, 245.75, 249.55);
}
.odi-ld__stage {
  margin-left: -0.4rem;
  padding: 0.2rem 0.4rem;
  font-size: 0.75rem; /* 12px — a tracked-out label should not scale with the copy */
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #393e41;
  background-color: rgb(243.6, 245.75, 249.55);
}
.odi-ld__step h4 {
  max-width: 14ch;
  min-height: 2.7em;
  margin: 1.1rem 0 0;
  font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.35;
  text-wrap: balance;
  color: #121212;
}
.odi-ld__note {
  margin: 0.5rem 0 0;
  font-size: clamp(0.95rem, 0.91rem + 0.18vw, 1.05rem); /* 15-17px */
  line-height: 1.55;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-ld__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .odi-ld__step:nth-child(2n)::before {
    display: none;
  }
}
@media (max-width: 767px) {
  .odi-ld__track {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 1.75rem;
  }
  .odi-ld__step::before {
    display: none;
  }
  .odi-ld__step h4 {
    min-height: 0;
  }
}

/* Contact Sales Form
==================================================*/
.odi-form {
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-form {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-form > h3[id*=h3Header],
.odi-form > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-form h3[id*=h3Header],
.odi-form h3[id*=h3Intro],
.odi-form p.sub-head {
  text-align: center;
}
.odi-form > h3[id*=h3Header],
.odi-form > .summary {
  max-width: 1100px;
}
.odi-form .two-column {
  grid-template-columns: minmax(0, 1fr) minmax(0, max-content);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
@media (max-width: 991px) {
  .odi-form .two-column {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }
}
.odi-form .odi-form__copy > p {
  margin: 0;
  color: #393e41;
}
.odi-form .odi-form__list {
  color: #393e41;
  margin-block: 1.25rem;
  margin-inline: 0;
  padding-inline-start: 0;
  list-style: none;
}
.odi-form .odi-form__list :where(li) {
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-form .odi-form__list :where(li) {
    text-wrap: pretty;
  }
}
.odi-form .odi-form__list :where(li) {
  padding-inline-start: 2em;
  position: relative;
}
.odi-form .odi-form__list :where(li)::before {
  content: "";
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50%;
  background-color: #1b4692;
  position: absolute;
  top: calc((1lh - 8px) / 2);
  left: 0;
}
.odi-form .odi-form__list :where(li) + li {
  margin-top: 0.55rem;
}
.odi-form .odi-form__email {
  margin: 1.5rem 0 0;
  font-size: 1rem;
  color: #393e41;
}
.odi-form .odi-form__email a {
  font-weight: 600;
}

/* LMS Integration Band
==================================================*/
.odi-lms {
  max-width: none;
  background-color: #fff;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-lms {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-lms > h3[id*=h3Header],
.odi-lms > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-lms {
  display: grid;
  padding-inline: max(clamp(3rem, 5vw + 2rem, 80px) / 2, (100% - 1366px) / 2);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
  grid-template-rows: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
}
.odi-lms > .summary {
  display: contents;
}
.odi-lms > h3[id*=h3Header] {
  margin: 0;
  color: #121212;
  grid-row: 2;
  grid-column: 1;
}
.odi-lms .summary > p.sub-head {
  max-width: 52ch;
  grid-row: 3;
  grid-column: 1;
}
.odi-lms .summary > .actions {
  grid-row: 4;
  grid-column: 1;
}
.odi-lms .odi-lms__proof {
  grid-row: 1/-1;
  grid-column: 2;
}
@media (max-width: 991px) {
  .odi-lms {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }
  .odi-lms > h3[id*=h3Header],
  .odi-lms .summary > p.sub-head,
  .odi-lms .odi-lms__proof {
    grid-row: auto;
    grid-column: 1;
  }
  .odi-lms .summary > .actions {
    margin-bottom: clamp(2rem, 6vw, 2.5rem);
    grid-row: auto;
    grid-column: 1;
  }
  .odi-lms .summary > p.sub-head {
    max-width: 68ch;
  }
}
@media (max-width: 767px) {
  .odi-lms {
    padding-inline: calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-lms .summary > p.sub-head {
  margin-bottom: 1.75rem;
}
.odi-lms .summary > .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.odi-lms__proof {
  display: flex;
  padding: clamp(1.5rem, 2.5vw, 2rem);
  color: #121212;
  align-self: center;
  box-shadow: 0 2px 4px rgba(18, 18, 18, 0.08);
  flex-direction: column;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
}
.odi-lms__score {
  border-bottom: 1px solid rgba(18, 18, 18, 0.125);
  padding-bottom: 1.25rem;
}
.odi-lms .stars {
  display: flex;
  margin-bottom: 0.9rem;
  font-size: 1rem;
  color: #1b4692;
  gap: 0.3rem;
}
.odi-lms__value {
  display: flex;
  margin: 0;
  font-size: clamp(2.5rem, 2rem + 2.2vw, 3.75rem); /* 40-60px */
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #1b4692;
  flex-wrap: wrap;
  gap: 0 0.6rem;
  align-items: baseline;
  font-variant-numeric: tabular-nums;
}
.odi-lms__value span {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  color: #393e41;
}
.odi-lms__label {
  margin: 0.7rem 0 0;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #393e41;
}
.odi-lms__quote {
  margin: 0;
  padding-top: 1.25rem;
}
.odi-lms__quote h4 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.25rem); /* 17-20px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-lms__quote blockquote {
  margin: 0;
  padding: 0;
  font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.3rem); /* 17-21px */
  line-height: 1.45;
  color: #121212;
}
.odi-lms__quote blockquote p {
  margin: 0;
}
.odi-lms__quote figcaption {
  margin-top: 1rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: #393e41;
}
.odi-lms__proof .actions {
  display: flex;
  margin-top: 1.25rem;
  border-top: 1px solid rgba(18, 18, 18, 0.125);
  padding-top: 1.25rem;
  flex-wrap: wrap;
  gap: 1rem;
}
@media (max-width: 767px) {
  .odi-lms .actions .btn {
    width: 100%;
    white-space: normal;
  }
}

/* Local mixins (comparison tables)
==================================================*/
/* Feature matrix (Pricing)
==================================================*/
.odi-matrix {
  max-width: none;
  background-color: #fff;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-matrix {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-matrix > h3[id*=h3Header],
.odi-matrix > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-matrix h3[id*=h3Header],
.odi-matrix h3[id*=h3Intro],
.odi-matrix p.sub-head {
  text-align: center;
}
.odi-matrix .odi-matrix__scroll {
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background-color: #fff;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  box-shadow: 0 3px 6px rgba(18, 18, 18, 0.125);
}
.odi-matrix .odi-matrix__caption {
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  white-space: nowrap;
  position: absolute;
  overflow: hidden;
  clip-path: inset(50%);
}
.odi-matrix .odi-matrix__table {
  width: 100%;
  min-width: 56rem;
  background-color: #fff;
  border-collapse: separate;
  border-spacing: 0;
}
.odi-matrix .odi-matrix__table th,
.odi-matrix .odi-matrix__table td {
  width: 13%;
  padding: 0.55rem 1rem;
  text-align: center;
}
.odi-matrix .odi-matrix__table th:first-child,
.odi-matrix .odi-matrix__table td:first-child {
  width: auto;
  text-align: left;
}
.odi-matrix .odi-matrix__table th + th,
.odi-matrix .odi-matrix__table th + td,
.odi-matrix .odi-matrix__table td + th,
.odi-matrix .odi-matrix__table td + td {
  border-left: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-matrix .odi-matrix__table tbody tr + tr > th,
.odi-matrix .odi-matrix__table tbody tr + tr > td {
  border-top: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-matrix .odi-matrix__table thead tr {
  background: linear-gradient(135deg, #1b4692, #964069);
}
.odi-matrix .odi-matrix__table thead th {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
  font-size: 0.875rem; /* 14px */
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  vertical-align: middle;
}
.odi-matrix .odi-matrix__table thead th:first-child {
  color: rgba(255, 255, 255, 0.72);
}
.odi-matrix .odi-matrix__table thead th + th {
  border-left-color: rgba(255, 255, 255, 0.3);
}
.odi-matrix .odi-matrix__table thead th.is-featured {
  background-color: rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.odi-matrix .odi-matrix__table td.is-featured {
  background-color: rgba(27, 70, 146, 0.06);
}
.odi-matrix .odi-matrix__table .feature {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  color: #121212;
  vertical-align: middle;
}
.odi-matrix .odi-matrix__table .mark {
  width: 1.1rem;
  display: inline-grid;
  border-radius: 50%;
  font-size: 0.5625rem; /* 9px */
  line-height: 1;
  aspect-ratio: 1;
  place-items: center;
  vertical-align: middle;
}
.odi-matrix .odi-matrix__table .mark.yes {
  color: #fff;
  background: linear-gradient(to right, #1b4692, #964069);
}
.odi-matrix .odi-matrix__table .mark.no {
  font-size: 0.9rem;
  color: rgba(57, 62, 65, 0.45);
}
.odi-matrix .odi-matrix__table .mark.no::before {
  content: "—";
}
.odi-matrix .odi-matrix__note {
  max-width: 48rem;
  margin: 1.5rem auto 0;
  font-size: 1rem;
  text-align: center;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-matrix .odi-matrix__scroll {
    border: 0;
    border-radius: 0;
    background: none;
    overflow-x: visible;
    box-shadow: none;
  }
  .odi-matrix .odi-matrix__table {
    min-width: 0;
    display: block;
    background: none;
  }
  .odi-matrix .odi-matrix__table thead {
    display: none;
  }
  .odi-matrix .odi-matrix__table tbody {
    display: block;
  }
  .odi-matrix .odi-matrix__table tbody tr {
    display: block;
    margin-bottom: 1rem;
    border: 1px solid rgba(18, 18, 18, 0.125);
    border-radius: 0.5rem;
    background-color: #fff;
    overflow: hidden;
  }
  .odi-matrix .odi-matrix__table th + th,
  .odi-matrix .odi-matrix__table th + td,
  .odi-matrix .odi-matrix__table td + th,
  .odi-matrix .odi-matrix__table td + td {
    border-left: 0;
  }
  .odi-matrix .odi-matrix__table tbody tr + tr > th,
  .odi-matrix .odi-matrix__table tbody tr + tr > td {
    border-top: 0;
  }
  .odi-matrix .odi-matrix__table .feature {
    width: auto;
    display: block;
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
    text-align: left;
    color: #fff;
    background-color: #1b4692;
  }
  .odi-matrix .odi-matrix__table td {
    width: auto;
    display: grid;
    border-bottom: 1px solid #f0f0f0;
    padding: 0.7rem 1.25rem;
    text-align: left;
    grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    align-items: start;
  }
  .odi-matrix .odi-matrix__table td::before {
    content: attr(data-label);
    font-size: 0.9375rem; /* 15px */
    font-weight: 600;
    color: #393e41;
  }
  .odi-matrix .odi-matrix__table td:last-child {
    border-bottom: 0;
  }
}
@media (max-width: 767px) {
  .odi-matrix .odi-matrix__table td {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (min-width: 992px) {
  .odi-matrix .odi-matrix__table thead th:first-child,
  .odi-matrix .odi-matrix__table .feature {
    min-width: 18rem;
  }
}
.odi-matrix .odi-matrix__group th {
  padding: 0.4rem 1rem;
  font-size: 0.75rem; /* 12px */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1b4692;
  background-color: #f0f0f0;
}
.odi-matrix .odi-matrix__group th span {
  margin-left: 0.75rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-matrix .odi-matrix__table tbody tr.odi-matrix__group {
    margin-bottom: 0.75rem;
    border: 0;
    border-radius: 0;
    background: none;
    overflow: visible;
  }
  .odi-matrix .odi-matrix__table tbody tr + tr.odi-matrix__group {
    margin-top: 2rem;
  }
  .odi-matrix .odi-matrix__group th {
    padding: 0 0 0.25rem;
    background: none;
  }
  .odi-matrix .odi-matrix__group th span {
    display: block;
    margin-left: 0;
  }
}

/* ATLAS vs a general assistant (ATLAS)
==================================================*/
.odi-vs {
  max-width: none;
  background-color: #fff;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-vs {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-vs > h3[id*=h3Header],
.odi-vs > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-vs h3[id*=h3Header],
.odi-vs h3[id*=h3Intro],
.odi-vs p.sub-head {
  text-align: center;
}
.odi-vs .odi-vs__scroll {
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  background-color: #fff;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  box-shadow: 0 3px 6px rgba(18, 18, 18, 0.125);
}
.odi-vs .odi-vs__caption {
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  white-space: nowrap;
  position: absolute;
  overflow: hidden;
  clip-path: inset(50%);
}
.odi-vs .odi-vs__table {
  width: 100%;
  min-width: 51.25rem;
  background-color: #fff;
  border-collapse: separate;
  border-spacing: 0;
}
.odi-vs .odi-vs__table th,
.odi-vs .odi-vs__table td {
  width: 38%;
  padding: 0.55rem 1rem;
  text-align: left;
}
.odi-vs .odi-vs__table th:first-child,
.odi-vs .odi-vs__table td:first-child {
  width: auto;
  text-align: left;
}
.odi-vs .odi-vs__table th + th,
.odi-vs .odi-vs__table th + td,
.odi-vs .odi-vs__table td + th,
.odi-vs .odi-vs__table td + td {
  border-left: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-vs .odi-vs__table tbody tr + tr > th,
.odi-vs .odi-vs__table tbody tr + tr > td {
  border-top: 1px solid rgba(18, 18, 18, 0.125);
}
.odi-vs .odi-vs__table thead tr {
  background: linear-gradient(135deg, #1b4692, #964069);
}
.odi-vs .odi-vs__table thead th {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
  font-size: 0.875rem; /* 14px */
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  vertical-align: middle;
}
.odi-vs .odi-vs__table thead th:first-child {
  color: rgba(255, 255, 255, 0.72);
}
.odi-vs .odi-vs__table thead th + th {
  border-left-color: rgba(255, 255, 255, 0.3);
}
.odi-vs .odi-vs__table thead th.is-featured {
  background-color: rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55);
}
.odi-vs .odi-vs__table td.is-featured {
  background-color: rgba(27, 70, 146, 0.06);
}
.odi-vs .odi-vs__table .feature {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  color: #121212;
  vertical-align: middle;
}
.odi-vs .odi-vs__table .mark {
  width: 1.1rem;
  display: inline-grid;
  border-radius: 50%;
  font-size: 0.5625rem; /* 9px */
  line-height: 1;
  aspect-ratio: 1;
  place-items: center;
  vertical-align: middle;
}
.odi-vs .odi-vs__table .mark.yes {
  color: #fff;
  background: linear-gradient(to right, #1b4692, #964069);
}
.odi-vs .odi-vs__table .mark.no {
  font-size: 0.9rem;
  color: rgba(57, 62, 65, 0.45);
}
.odi-vs .odi-vs__table .mark.no::before {
  content: "—";
}
.odi-vs .odi-vs__note {
  max-width: 48rem;
  margin: 1.5rem auto 0;
  font-size: 1rem;
  text-align: center;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-vs .odi-vs__scroll {
    border: 0;
    border-radius: 0;
    background: none;
    overflow-x: visible;
    box-shadow: none;
  }
  .odi-vs .odi-vs__table {
    min-width: 0;
    display: block;
    background: none;
  }
  .odi-vs .odi-vs__table thead {
    display: none;
  }
  .odi-vs .odi-vs__table tbody {
    display: block;
  }
  .odi-vs .odi-vs__table tbody tr {
    display: block;
    margin-bottom: 1rem;
    border: 1px solid rgba(18, 18, 18, 0.125);
    border-radius: 0.5rem;
    background-color: #fff;
    overflow: hidden;
  }
  .odi-vs .odi-vs__table th + th,
  .odi-vs .odi-vs__table th + td,
  .odi-vs .odi-vs__table td + th,
  .odi-vs .odi-vs__table td + td {
    border-left: 0;
  }
  .odi-vs .odi-vs__table tbody tr + tr > th,
  .odi-vs .odi-vs__table tbody tr + tr > td {
    border-top: 0;
  }
  .odi-vs .odi-vs__table .feature {
    width: auto;
    display: block;
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
    text-align: left;
    color: #fff;
    background-color: #1b4692;
  }
  .odi-vs .odi-vs__table td {
    width: auto;
    display: grid;
    border-bottom: 1px solid #f0f0f0;
    padding: 0.7rem 1.25rem;
    text-align: left;
    grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    align-items: start;
  }
  .odi-vs .odi-vs__table td::before {
    content: attr(data-label);
    font-size: 0.9375rem; /* 15px */
    font-weight: 600;
    color: #393e41;
  }
  .odi-vs .odi-vs__table td:last-child {
    border-bottom: 0;
  }
}
@media (max-width: 767px) {
  .odi-vs .odi-vs__table td {
    grid-template-columns: minmax(0, 1fr);
  }
}
.odi-vs .summary > p.sub-head {
  max-width: 64ch;
  margin-inline: auto;
}
.odi-vs .odi-vs__table th,
.odi-vs .odi-vs__table td {
  vertical-align: top;
}
.odi-vs .odi-vs__table td {
  font-size: 1rem;
  line-height: 1.55;
  color: #393e41;
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-vs .odi-vs__table td {
    text-wrap: pretty;
  }
}
.odi-vs .odi-vs__table td.is-featured {
  color: #121212;
}
@media (max-width: 991px) {
  .odi-vs .odi-vs__caption {
    display: block;
  }
  .odi-vs .odi-vs__table {
    max-width: 72ch;
    margin-inline: auto;
  }
  .odi-vs .odi-vs__table td {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Course Catalog (tracks)
==================================================*/
.odi-catalog h3[id*=h3Header],
.odi-catalog h3[id*=h3Intro],
.odi-catalog p.sub-head {
  text-align: center;
}
.odi-catalog__grid {
  display: grid;
  margin: 0;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  padding: 0;
  background-color: rgba(18, 18, 18, 0.125);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  gap: 1px;
  overflow: hidden;
}
.odi-catalog__item {
  display: flex;
  margin: 0;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  background-color: #fff;
  flex-direction: column;
}
.odi-catalog__item + li {
  margin-top: 0;
}
.odi-catalog__item p:not([class]) {
  margin: 0.45rem 0 0;
  font-size: clamp(0.95rem, 0.91rem + 0.18vw, 1.05rem); /* 15-17px */
  color: #393e41;
}
.odi-catalog__count {
  margin: 0;
  font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); /* 28-40px */
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #1b4692;
  font-variant-numeric: tabular-nums;
}
.odi-catalog h4 {
  margin: 0.7rem 0 0;
  font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.2rem); /* 17-19px */
  font-weight: 800;
  line-height: 1.3;
  color: #121212;
}
.odi-catalog__note {
  max-width: 48rem;
  margin: 1.75rem auto 0;
  font-size: 0.95rem;
  text-align: center;
  color: #393e41;
}
@media (max-width: 991px) {
  .odi-catalog__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .odi-catalog__grid {
    grid-template-columns: 1fr;
  }
  .odi-catalog__note {
    margin-top: 1.25rem;
    text-align: left;
  }
}

/* Pathfinder Paths
==================================================*/
.odi-paths {
  --odi-paths-award: 1.6rem;
  max-width: none;
  background-color: #f0f0f0;
  padding: clamp(3rem, 5vw + 2rem, 80px) calc(clamp(3rem, 5vw + 2rem, 80px) / 2);
}
@media (max-width: 767px) {
  .odi-paths {
    padding: calc(clamp(3rem, 5vw + 2rem, 80px) / 2) calc(clamp(3rem, 5vw + 2rem, 80px) / 4);
  }
}
.odi-paths > h3[id*=h3Header],
.odi-paths > .summary {
  max-width: 1366px;
  margin: 0 auto;
}
.odi-paths h3[id*=h3Header],
.odi-paths h3[id*=h3Intro],
.odi-paths p.sub-head {
  text-align: center;
}
.odi-paths .summary > p.sub-head {
  max-width: 64ch;
  margin-right: auto;
  margin-left: auto;
}
.odi-paths__grid {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: stretch;
}
.odi-paths__item {
  --odi-path-tone: #1b4692;
  display: flex;
  margin: 0;
  border: 1px solid rgba(18, 18, 18, 0.125);
  border-radius: 0.5rem;
  padding: clamp(1.35rem, 2.5vw, 1.85rem);
  background-color: #fff;
  position: relative;
  box-shadow: 0 2px 4px rgba(18, 18, 18, 0.08);
  grid-column: span 2;
  flex-direction: column;
}
.odi-paths__item + li {
  margin-top: 0;
}
.odi-paths__item:last-child:nth-child(3n+1) {
  grid-column: 3/span 2;
}
.odi-paths__item:nth-last-child(2):nth-child(3n+1) {
  grid-column: 2/span 2;
}
.odi-paths__item--business {
  --odi-path-tone: #964069;
}
.odi-paths__mark {
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  margin-bottom: 1.15rem;
  border-radius: 50%;
  font-size: 1.15rem;
  line-height: 1;
  color: #fff;
  background-color: var(--odi-path-tone);
  align-items: center;
  justify-content: center;
}
.odi-paths h4 {
  margin: 0;
  font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem); /* 18-22px */
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #121212;
  text-wrap: wrap;
}
@supports (text-wrap: balance) {
  .odi-paths h4 {
    text-wrap: balance;
  }
}
.odi-paths__item p:not([class]) {
  margin: 0.55rem 0 1.35rem;
  font-size: clamp(0.9375rem, 0.9rem + 0.15vw, 1rem); /* 15-16px */
  line-height: 1.55;
  color: #393e41;
}
.odi-paths__track {
  height: 1.15rem;
  display: block;
  margin-top: auto;
  background-image: repeating-linear-gradient(to right, rgba(18, 18, 18, 0.2) 0 0.4rem, transparent 0.4rem 0.85rem);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: calc(100% - var(--odi-paths-award)) 2px;
  position: relative;
}
.odi-paths__track i {
  font-size: 1rem;
  line-height: 1;
  color: var(--odi-path-tone);
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
@media (max-width: 991px) {
  .odi-paths__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .odi-paths__item:last-child:nth-child(3n+1), .odi-paths__item:nth-last-child(2):nth-child(3n+1) {
    grid-column: span 2;
  }
  .odi-paths__item:last-child:nth-child(odd) {
    grid-column: 2/span 2;
  }
}
@media (max-width: 767px) {
  .odi-paths__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .odi-paths__item:last-child:nth-child(3n+1), .odi-paths__item:nth-last-child(2):nth-child(3n+1), .odi-paths__item:last-child:nth-child(odd) {
    grid-column: span 2;
  }
}

/* FAQ
==================================================*/
.odi-faq {
  display: grid;
  interpolate-size: allow-keywords;
  grid-template-columns: 0.5fr 1.5fr;
  gap: 6rem;
}
@media (max-width: 991px) {
  .odi-faq {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}
.odi-faq h3 {
  max-width: min-content;
  margin: 0;
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.5;
  color: #1b4692;
  position: sticky;
  top: 2rem;
  align-self: start;
}
@media (max-width: 991px) {
  .odi-faq h3 {
    max-width: none;
    font-size: 2.25rem;
    text-align: center;
    position: static;
  }
}
.odi-faq > ul {
  margin: 0;
  padding: 0;
}
.odi-faq > ul li.accordion-item {
  width: 100%;
  display: grid;
  padding: 1.5rem 0;
  font-size: 1.25rem;
  list-style-type: none;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0 1rem;
  align-items: start;
}
.odi-faq > ul li.accordion-item > :not(.question, .answer) {
  display: none;
}
.odi-faq > ul li.accordion-item + li {
  margin-top: 0;
  border-top: 1px solid rgba(18, 18, 18, 0.25);
}
.odi-faq > ul li.accordion-item .question {
  font-weight: 500;
  color: #121212;
  cursor: pointer;
  grid-row: 1;
  transition: color 200ms ease;
}
.odi-faq > ul li.accordion-item:hover:not(.open) .question {
  color: #1b4692;
}
.odi-faq > ul li.accordion-item:hover:not(.open)::after {
  color: #393e41;
  opacity: 1;
}
.odi-faq > ul li.accordion-item::after {
  content: "+";
  margin-left: 1rem;
  font-family: "Font Awesome 6 Free";
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 1;
  color: #121212;
  cursor: pointer;
  opacity: 0.25;
  grid-row: 1;
  align-self: center;
  transition: 400ms all cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.odi-faq > ul li.accordion-item .answer {
  height: 0;
  display: block;
  margin-top: 0;
  opacity: 0;
  overflow: clip;
  transform: translateY(-0.35rem);
  transition: height 350ms ease, margin-top 350ms ease, opacity 250ms ease, transform 350ms ease;
  grid-row: 2;
  grid-column: 1/-1;
}
.odi-faq > ul li.accordion-item .answer p {
  margin: 0;
  font-size: 1rem;
  color: #393e41;
  text-wrap: wrap;
}
@supports (text-wrap: pretty) {
  .odi-faq > ul li.accordion-item .answer p {
    text-wrap: pretty;
  }
}
.odi-faq > ul li.accordion-item .answer p + p {
  margin-top: 0.9rem;
}
.odi-faq > ul li.accordion-item .answer ul {
  margin: 1rem 0 0 2rem;
  padding: 0;
}
.odi-faq > ul li.accordion-item .answer ul li {
  font-size: 1rem;
  line-height: 1.5;
  list-style-type: disc;
  color: #393e41;
}
.odi-faq > ul li.accordion-item .answer ul li::marker {
  color: #1b4692;
}
.odi-faq > ul li.accordion-item .answer ul li + li {
  margin-top: 0.5rem;
}
.odi-faq > ul li.accordion-item.open .answer {
  height: auto;
  margin-top: 1rem;
  opacity: 1;
  transform: translateY(0);
}
.odi-faq > ul li.accordion-item.open::after {
  opacity: 0.5;
  transform: rotate(45deg);
}
@media (max-width: 991px) {
  .odi-faq > ul li.accordion-item {
    font-size: 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .odi-faq li.accordion-item .answer {
    transform: none;
    transition: none;
  }
  .odi-faq li.accordion-item::after {
    transition: none;
  }
}

/*# sourceMappingURL=odi-styles.css.map */
